package cn.tqfeiyang.smartadmin.commons.toolbox;

import java.util.Collection;

/**
 * 字符串工具类，对常用的字符串操作进行封装。
 *
 * @author tqfeiyang
 * @wechat 18576228047
 * @email 1787585212@qq.com
 * @date 2024/8/15 8:26
 */
public final class StringUtils {

    /**
     * 空字符串
     */
    public static final String EMPTY = "";

    /**
     * 判断字符串是否是 null 或者 长度为 0
     *
     * @param cs 需要判断的字符串
     * @return 如果字符串是 null 或者 长度为 0，返回 true
     */
    public static boolean isEmpty(CharSequence cs) {
        return com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(cs);
    }

    /**
     * @see StringUtils#isEmpty(CharSequence)
     */
    public static boolean isNotEmpty(CharSequence cs) {
        return com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(cs);
    }

    /**
     * 判断字符串中是否是 null 或者 全是空白字符
     *
     * @param cs 需要判断的字符串
     * @return 如果字符串序列是 null 或者全是空白，返回 true
     */
    public static boolean isBlank(CharSequence cs) {
        return com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(cs);
    }

    /**
     * @see StringUtils#isBlank(CharSequence)
     */
    public static boolean isNotBlank(CharSequence cs) {
        return com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(cs);
    }


    /**
     * 将集合转换成分割字符串。
     *
     * @param coll 集合
     * @param delim 分割字符串
     * @param prefix 前字符串
     * @param suffix 后字符串
     * @return 分割的字符串
     */
    public static String collectionToDelimitedString(Collection<?> coll, String delim, String prefix, String suffix) {
        return org.springframework.util.StringUtils.collectionToDelimitedString(coll, delim, prefix, suffix);
    }

    /**
     * @see StringUtils#collectionToDelimitedString(Collection, String, String, String)
     */
    public static String collectionToDelimitedString(Collection<?> coll, String delim) {
        return collectionToDelimitedString(coll, delim, "", "");
    }

    /**
     * @see StringUtils#collectionToDelimitedString(Collection, String, String, String)
     */
    public static String collectionToCommaDelimitedString(Collection<?> coll) {
        return collectionToDelimitedString(coll, ",");
    }

    /**
     * @see StringUtils#collectionToDelimitedString(Collection, String, String, String)
     */
    public static String arrayToDelimitedString(Object[] arr, String delim) {
        return org.springframework.util.StringUtils.arrayToDelimitedString(arr, delim);
    }

    /**
     * @see StringUtils#collectionToDelimitedString(Collection, String, String, String)
     */
    public static String arrayToCommaDelimitedString(Object[] arr) {
        return arrayToDelimitedString(arr, ",");
    }
}
